home *** CD-ROM | disk | FTP | other *** search
- #ifndef PARSE_INCLUDE
- #define PARSE_INCLUDE
-
- /* macros for the parse_args routine */
-
- #define P_STRING 1 /* Macros for the result_type attribute */
- #define P_CHAR 2
- #define P_SHORT 3
- #define P_INT 4
- #define P_LONG 5
- #define P_FILE 6
- #define P_OLD_FILE 7
- #define P_NEW_FILE 8
- #define P_FLOAT 9
- #define P_DOUBLE 10
-
- #define P_CASE_INSENSITIVE 01 /* Macros for the flags attribute */
- #define P_REQUIRED_PREFIX 02
-
- #define P_NO_ARGS 0 /* Macros for the arg_count attribute */
- #define P_ONE_ARG 1
- #define P_INFINITE_ARGS 2
-
- #define p_entry(pref,swit,flag,count,type,store,size) \
- { (pref), (swit), (flag), (count), (type), (int *) (store), (size) }
-
- typedef struct {
- char *prefix;
- char *string;
- int flags;
- int count;
- int result_type;
- int *result_ptr;
- int table_size;
- } arg_info;
-
- #ifdef KR_headers
- #define Argdcl(x) ()
- #else
- #define Argdcl(x) x
- #endif
- int arg_verify Argdcl((char**, arg_info*, int));
- void init_store Argdcl((arg_info*, int));
- int match_table Argdcl((char*, arg_info*, int, int, int*));
- int parse_args Argdcl((int, char**, arg_info*, int, char**, int));
-
- #endif
-